1. Field of the Invention
The invention relates generally to data communications and, more particularly, to transmitting data over a shared channel.
2. Description of Related Art
Data communications systems often include a number of nodes that transmit data to a destination over a shared channel. Since there may be a large number of nodes in such systems, multiple nodes often transmit data at the same time. As a result, data collisions involving simultaneous transmissions over the shared channel often occur.
When a data collision involving a number of transmitting nodes occurs, the destination device is unable to determine what each node actually transmitted. For example, the destination device may be unable to accurately decode the transmissions from the multiple nodes. In conventional systems, each node may re-send its data one or more times until the data transmission from each node is correctly received at the destination device and an acknowledgement is sent from the destination device to each node that transmitted data. One problem with such conventional systems is that the data throughput is reduced since no agent limits how nodes access the network, resulting in more collisions and subsequent re-transmissions. That is, transmitting data from a node to a destination device, waiting for an acknowledgement from the destination device and then having to re-send the data one or more times is inefficient and results in low data throughput.
In other conventional systems used to resolve data collisions, data packets may be assigned either a high or low priority after a collision occurs. The high priority packets may then be re-sent to the destination. If a collision occurs on this re-transmission or any subsequent re-transmission, the colliding packets may be subdivided again into high and low priority packets until only a single packet is being transmitted. Once high priority packets from a collision are correctly received, the process may be repeated for low priority packets.
One problem with this conventional type of rigid collision resolution system, in which a subset of colliding packets must be received successfully before any others are sent, is apparent in systems with propagation delay. For example, the destination device must wait for information to be received at the destination device regarding past information request(s) before a subsequent request for information is sent to the nodes. As a result of this waiting, channel utilization is decreased and data throughput is reduced when collisions are resolved in this manner.